Move documentation to inline comments: GtkClipboard
authorJavier Jardón <jjardon@gnome.org>
Wed, 13 Apr 2011 11:48:47 +0000 (12:48 +0100)
committerJavier Jardón <jjardon@gnome.org>
Wed, 13 Apr 2011 11:48:47 +0000 (12:48 +0100)
docs/reference/gtk/tmpl/.gitignore
docs/reference/gtk/tmpl/gtkclipboard.sgml [deleted file]
gtk/gtkclipboard.c
gtk/gtkclipboard.h

index c00125deaefa2b975dfa5edc398d24aec275f5ec..61ff64e232b24a6788c025abb94464c902a1abb9 100644 (file)
@@ -21,6 +21,7 @@ gtkcellrenderertoggle.sgml
 gtkcellview.sgml
 gtkcheckbutton.sgml
 gtkcheckmenuitem.sgml
+gtkclipboard.sgml
 gtkcolorbutton.sgml
 gtkcolorsel.sgml
 gtkcombobox.sgml
diff --git a/docs/reference/gtk/tmpl/gtkclipboard.sgml b/docs/reference/gtk/tmpl/gtkclipboard.sgml
deleted file mode 100644 (file)
index d39782f..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Clipboards
-
-<!-- ##### SECTION Short_Description ##### -->
-Storing data on clipboards
-
-<!-- ##### SECTION Long_Description ##### -->
-  <para>
-    The #GtkClipboard object represents a clipboard of data shared
-    between different processes or between different widgets in
-    the same process. Each clipboard is identified by a name encoded as a
-    #GdkAtom. (Conversion to and from strings can be done with
-    gdk_atom_intern() and gdk_atom_name().) The default clipboard
-    corresponds to the "CLIPBOARD" atom; another commonly used clipboard
-    is the "PRIMARY" clipboard, which, in X, traditionally contains
-    the currently selected text.
-  </para>
-  <para>
-    To support having a number of different formats on the clipboard
-    at the same time, the clipboard mechanism allows providing
-    callbacks instead of the actual data.  When you set the contents
-    of the clipboard, you can either supply the data directly (via
-    functions like gtk_clipboard_set_text()), or you can supply a
-    callback to be called at a later time when the data is needed (via
-    gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().)
-    Providing a callback also avoids having to make copies of the data
-    when it is not needed.
-  </para>
-  <para>
-    gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner()
-    are quite similar; the choice between the two depends mostly on
-    which is more convenient in a particular situation.
-    The former is most useful when you want to have a blob of data
-    with callbacks to convert it into the various data types that you
-    advertise. When the @clear_func you provided is called, you
-    simply free the data blob. The latter is more useful when the
-    contents of clipboard reflect the internal state of a #GObject
-    (As an example, for the PRIMARY clipboard, when an entry widget
-    provides the clipboard's contents the contents are simply the
-    text within the selected region.) If the contents change, the
-    entry widget can call gtk_clipboard_set_with_owner() to update
-    the timestamp for clipboard ownership, without having to worry
-    about @clear_func being called.
-  </para>
-  <para>
-    Requesting the data from the clipboard is essentially
-    asynchronous. If the contents of the clipboard are provided within
-    the same process, then a direct function call will be made to
-    retrieve the data, but if they are provided by another process,
-    then the data needs to be retrieved from the other process, which
-    may take some time. To avoid blocking the user interface, the call
-    to request the selection, gtk_clipboard_request_contents() takes a
-    callback that will be called when the contents are received (or
-    when the request fails.) If you don't want to deal with providing
-    a separate callback, you can also use gtk_clipboard_wait_for_contents().
-    What this does is run the GLib main loop recursively waiting for
-    the contents. This can simplify the code flow, but you still have
-    to be aware that other callbacks in your program can be called
-    while this recursive mainloop is running.
-  </para>
-  <para>
-    Along with the functions to get the clipboard contents as an
-    arbitrary data chunk, there are also functions to retrieve
-    it as text, gtk_clipboard_request_text() and
-    gtk_clipboard_wait_for_text(). These functions take care of
-    determining which formats are advertised by the clipboard
-    provider, asking for the clipboard in the best available format
-    and converting the results into the UTF-8 encoding. (The standard
-    form for representing strings in GTK+.)
-  </para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-<variablelist>
-
-<varlistentry>
-<term>#GtkSelection</term>
-<listitem><para>#GtkClipboard provides a high-level wrapper around the
-           lower level routines that deal with X selections. It is
-           also possibly to directly manipulate the X selections,
-           though it is seldom necessary to do so.</para></listitem>
-</varlistentry>
-
-</variablelist>
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### SECTION Image ##### -->
-
-
-<!-- ##### STRUCT GtkClipboard ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### SIGNAL GtkClipboard::owner-change ##### -->
-<para>
-
-</para>
-
-@clipboard: the object which received the signal.
-@event: 
-
-<!-- ##### USER_FUNCTION GtkClipboardReceivedFunc ##### -->
-<para>
-    A function to be called when the results of gtk_clipboard_request_contents()
-    are received, or when the request fails.
-</para>
-
-@clipboard: the #GtkClipboard
-@selection_data: a #GtkSelectionData containing the data was received.
-                 If retrieving the data failed, then then length field
-                 of @selection_data will be negative.
-@data: the @user_data supplied to gtk_clipboard_request_contents().
-
-
-<!-- ##### USER_FUNCTION GtkClipboardTextReceivedFunc ##### -->
-<para>
-    A function to be called when the results of gtk_clipboard_request_text()
-    are received, or when the request fails.
-</para>
-
-@clipboard: the #GtkClipboard
-@text: the text received, as a UTF-8 encoded string, or %NULL
-            if retrieving the data failed.
-@data: the @user_data supplied to gtk_clipboard_request_text().
-
-
-<!-- ##### USER_FUNCTION GtkClipboardImageReceivedFunc ##### -->
-<para>
-    A function to be called when the results of gtk_clipboard_request_image()
-    are received, or when the request fails.
-</para>
-
-@clipboard: the #GtkClipboard
-@pixbuf: the received image
-@data: the @user_data supplied to gtk_clipboard_request_image().
-@Since: 2.6
-
-
-<!-- ##### USER_FUNCTION GtkClipboardTargetsReceivedFunc ##### -->
-<para>
-    A function to be called when the results of gtk_clipboard_request_targets()
-    are received, or when the request fails.
-</para>
-
-@clipboard: the #GtkClipboard
-@atoms: the supported targets, as array of #GdkAtom, or %NULL 
-            if retrieving the data failed.
-@n_atoms: the length of the @atoms array.
-@data: the @user_data supplied to gtk_clipboard_request_targets().
-@Since: 2.4
-
-
-<!-- ##### USER_FUNCTION GtkClipboardRichTextReceivedFunc ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@format: 
-@text: 
-@length: 
-@data: 
-
-
-<!-- ##### USER_FUNCTION GtkClipboardURIReceivedFunc ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@uris: 
-@data: 
-
-
-<!-- ##### USER_FUNCTION GtkClipboardGetFunc ##### -->
-<para>
-A function that will be called to provide the contents of the selection.
-If multiple types of data were advertised, the requested type can
-be determined from the @info parameter or by checking the target field
-of @selection_data. If the data could successfully be converted into
-then it should be stored into the @selection_data object by
-calling gtk_selection_data_set() (or related functions such
-as gtk_selection_data_set_text()). If no data is set, the requestor
-will be informed that the attempt to get the data failed.    
-</para>
-
-@clipboard: the #GtkClipboard
-@selection_data: a #GtkSelectionData argument in which the requested
-                     data should be stored.
-@info: the info field corresponding to the requested
-                     target from the #GtkTargetEntry array passed to
-                     gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().
-@user_data_or_owner: the @user_data argument passed to gtk_clipboard_set_with_data(), or
-                     the @owner argument passed to gtk_clipboard_set_with_owner()
-
-
-<!-- ##### USER_FUNCTION GtkClipboardClearFunc ##### -->
-<para>
-A function that will be called when the contents of the clipboard are changed
-or cleared. Once this has called, the @user_data_or_owner argument
-will not be used again.
-</para>
-
-@clipboard: the #GtkClipboard
-@user_data_or_owner: the @user_data argument passed to gtk_clipboard_set_with_data(), or
-                     the @owner argument passed to gtk_clipboard_set_with_owner()
-
-
-<!-- ##### FUNCTION gtk_clipboard_get ##### -->
-<para>
-
-</para>
-
-@selection: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_get_for_display ##### -->
-<para>
-
-</para>
-
-@display: 
-@selection: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_get_display ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_set_with_data ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@targets: 
-@n_targets: 
-@get_func: 
-@clear_func: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_set_with_owner ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@targets: 
-@n_targets: 
-@get_func: 
-@clear_func: 
-@owner: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_get_owner ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_clear ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_set_text ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@text: 
-@len: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_set_image ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@pixbuf: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_request_contents ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@target: 
-@callback: 
-@user_data: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_request_text ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@callback: 
-@user_data: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_request_image ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@callback: 
-@user_data: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_request_targets ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@callback: 
-@user_data: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_request_rich_text ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@buffer: 
-@callback: 
-@user_data: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_request_uris ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@callback: 
-@user_data: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_for_contents ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@target: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_for_text ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_for_image ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_for_rich_text ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@buffer: 
-@format: 
-@length: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_for_uris ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_is_text_available ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_is_image_available ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_is_rich_text_available ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@buffer: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_is_uris_available ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_for_targets ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@targets: 
-@n_targets: 
-@Returns: 
-
-<!--
-Local variables:
-mode: sgml
-sgml-parent-document: ("../gtk-docs.sgml" "book" "refsect2" "")
-End:
--->
-
-
-<!-- ##### FUNCTION gtk_clipboard_wait_is_target_available ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@target: 
-@Returns: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_set_can_store ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-@targets: 
-@n_targets: 
-
-
-<!-- ##### FUNCTION gtk_clipboard_store ##### -->
-<para>
-
-</para>
-
-@clipboard: 
-
-
index 5dc09e59e85752cde5d06e06157087286d664db1..7b223ff4ed357f4bfe2bebe88f86601e8caa8990 100644 (file)
 #include "win32/gdkwin32.h"
 #endif
 
+
+/**
+ * SECTION:gtkclipboard
+ * @Short_description: Storing data on clipboards
+ * @Title: Clipboards
+ * @See_also: #GtkSelection
+ *
+ * The #GtkClipboard object represents a clipboard of data shared
+ * between different processes or between different widgets in
+ * the same process. Each clipboard is identified by a name encoded as a
+ * #GdkAtom. (Conversion to and from strings can be done with
+ * gdk_atom_intern() and gdk_atom_name().) The default clipboard
+ * corresponds to the "CLIPBOARD" atom; another commonly used clipboard
+ * is the "PRIMARY" clipboard, which, in X, traditionally contains
+ * the currently selected text.
+ *
+ * To support having a number of different formats on the clipboard
+ * at the same time, the clipboard mechanism allows providing
+ * callbacks instead of the actual data.  When you set the contents
+ * of the clipboard, you can either supply the data directly (via
+ * functions like gtk_clipboard_set_text()), or you can supply a
+ * callback to be called at a later time when the data is needed (via
+ * gtk_clipboard_set_with_data() or gtk_clipboard_set_with_owner().)
+ * Providing a callback also avoids having to make copies of the data
+ * when it is not needed.
+ *
+ * gtk_clipboard_set_with_data() and gtk_clipboard_set_with_owner()
+ * are quite similar; the choice between the two depends mostly on
+ * which is more convenient in a particular situation.
+ * The former is most useful when you want to have a blob of data
+ * with callbacks to convert it into the various data types that you
+ * advertise. When the @clear_func you provided is called, you
+ * simply free the data blob. The latter is more useful when the
+ * contents of clipboard reflect the internal state of a #GObject
+ * (As an example, for the PRIMARY clipboard, when an entry widget
+ * provides the clipboard's contents the contents are simply the
+ * text within the selected region.) If the contents change, the
+ * entry widget can call gtk_clipboard_set_with_owner() to update
+ * the timestamp for clipboard ownership, without having to worry
+ * about @clear_func being called.
+ *
+ * Requesting the data from the clipboard is essentially
+ * asynchronous. If the contents of the clipboard are provided within
+ * the same process, then a direct function call will be made to
+ * retrieve the data, but if they are provided by another process,
+ * then the data needs to be retrieved from the other process, which
+ * may take some time. To avoid blocking the user interface, the call
+ * to request the selection, gtk_clipboard_request_contents() takes a
+ * callback that will be called when the contents are received (or
+ * when the request fails.) If you don't want to deal with providing
+ * a separate callback, you can also use gtk_clipboard_wait_for_contents().
+ * What this does is run the GLib main loop recursively waiting for
+ * the contents. This can simplify the code flow, but you still have
+ * to be aware that other callbacks in your program can be called
+ * while this recursive mainloop is running.
+ *
+ * Along with the functions to get the clipboard contents as an
+ * arbitrary data chunk, there are also functions to retrieve
+ * it as text, gtk_clipboard_request_text() and
+ * gtk_clipboard_wait_for_text(). These functions take care of
+ * determining which formats are advertised by the clipboard
+ * provider, asking for the clipboard in the best available format
+ * and converting the results into the UTF-8 encoding. (The standard
+ * form for representing strings in GTK+.)
+ */
+
+
 enum {
   OWNER_CHANGE,
   LAST_SIGNAL
@@ -180,14 +247,14 @@ gtk_clipboard_class_init (GtkClipboardClass *class)
   /**
    * GtkClipboard::owner-change:
    * @clipboard: the #GtkClipboard on which the signal is emitted
-   * @event: (type Gdk.EventOwnerChange): the @GdkEventOwnerChange event 
+   * @event: (type Gdk.EventOwnerChange): the @GdkEventOwnerChange event
    *
    * The ::owner-change signal is emitted when GTK+ receives an
-   * event that indicates that the ownership of the selection 
+   * event that indicates that the ownership of the selection
    * associated with @clipboard has changed.
    *
    * Since: 2.6
-   */ 
+   */
   clipboard_signals[OWNER_CHANGE] =
     g_signal_new (I_("owner-change"),
                  G_TYPE_FROM_CLASS (gobject_class),
@@ -237,7 +304,7 @@ gtk_clipboard_finalize (GObject *object)
 
   if (clipboard->notify_signal_id != 0)
     g_signal_handler_disconnect (clipboard_widget, clipboard->notify_signal_id);
-  
+
   g_free (clipboard->storable_targets);
   g_free (clipboard->cached_targets);
 
@@ -261,9 +328,8 @@ clipboard_display_closed (GdkDisplay   *display,
 /**
  * gtk_clipboard_get_for_display:
  * @display: the display for which the clipboard is to be retrieved or created
- * @selection: a #GdkAtom which identifies the clipboard
- *             to use.
- * 
+ * @selection: a #GdkAtom which identifies the clipboard to use.
+ *
  * Returns the clipboard object for the given selection.
  * Cut/copy/paste menu items and keyboard shortcuts should use
  * the default clipboard, returned by passing %GDK_SELECTION_CLIPBOARD for @selection.
@@ -289,13 +355,11 @@ clipboard_display_closed (GdkDisplay   *display,
  * underscore-prefixed), and namespace it as well. For example,
  * if your application called "Foo" has a special-purpose
  * clipboard, you might call it "_FOO_SPECIAL_CLIPBOARD".
- * 
+ *
  * Return value: (transfer none): the appropriate clipboard object. If no
- *             clipboard already exists, a new one will
- *             be created. Once a clipboard object has
- *             been created, it is persistent and, since
- *             it is owned by GTK+, must not be freed or
- *             unrefd.
+ *   clipboard already exists, a new one will be created. Once a clipboard
+ *   object has been created, it is persistent and, since it is owned by
+ *   GTK+, must not be freed or unrefd.
  *
  * Since: 2.2
  **/
index f0e5514a099bac125a0f5f07e246dc1b86e82ea5..4b2756c6c762ed2221584e91c223ea88a1ab5aa6 100644 (file)
@@ -34,23 +34,73 @@ G_BEGIN_DECLS
 #define GTK_CLIPBOARD(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CLIPBOARD, GtkClipboard))
 #define GTK_IS_CLIPBOARD(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CLIPBOARD))
 
+/**
+ * GtkClipboardReceivedFunc:
+ * @clipboard: the #GtkClipboard
+ * @selection_data: a #GtkSelectionData containing the data was received.
+ *   If retrieving the data failed, then then length field
+ *   of @selection_data will be negative.
+ * @data: the @user_data supplied to gtk_clipboard_request_contents().
+ *
+ * A function to be called when the results of gtk_clipboard_request_contents()
+ * are received, or when the request fails.
+ */
 typedef void (* GtkClipboardReceivedFunc)         (GtkClipboard     *clipboard,
                                                   GtkSelectionData *selection_data,
                                                   gpointer          data);
+
+/**
+ * GtkClipboardTextReceivedFunc:
+ * @clipboard: the #GtkClipboard
+ * @text: the text received, as a UTF-8 encoded string, or %NULL
+ *   if retrieving the data failed.
+ * @data: the @user_data supplied to gtk_clipboard_request_text().
+ *
+ * A function to be called when the results of gtk_clipboard_request_text()
+ * are received, or when the request fails.
+ */
 typedef void (* GtkClipboardTextReceivedFunc)     (GtkClipboard     *clipboard,
                                                   const gchar      *text,
                                                   gpointer          data);
+
 typedef void (* GtkClipboardRichTextReceivedFunc) (GtkClipboard     *clipboard,
                                                    GdkAtom           format,
                                                   const guint8     *text,
                                                    gsize             length,
                                                   gpointer          data);
+
+/**
+ * GtkClipboardImageReceivedFunc:
+ * @clipboard: the #GtkClipboard
+ * @pixbuf: the received image
+ * @data: the @user_data supplied to gtk_clipboard_request_image().
+ *
+ * A function to be called when the results of gtk_clipboard_request_image()
+ * are received, or when the request fails.
+ *
+ * Since: 2.6
+ */
 typedef void (* GtkClipboardImageReceivedFunc)    (GtkClipboard     *clipboard,
                                                   GdkPixbuf        *pixbuf,
                                                   gpointer          data);
+
 typedef void (* GtkClipboardURIReceivedFunc)      (GtkClipboard     *clipboard,
                                                   gchar           **uris,
                                                   gpointer          data);
+
+/**
+ * GtkClipboardTargetsReceivedFunc:
+ * @clipboard: the #GtkClipboard
+ * @atoms: the supported targets, as array of #GdkAtom, or %NULL
+ *   if retrieving the data failed.
+ * @n_atoms: the length of the @atoms array.
+ * @data: the @user_data supplied to gtk_clipboard_request_targets().
+ *
+ * A function to be called when the results of gtk_clipboard_request_targets()
+ * are received, or when the request fails.
+ *
+ * Since: 2.4
+ */
 typedef void (* GtkClipboardTargetsReceivedFunc)  (GtkClipboard     *clipboard,
                                                   GdkAtom          *atoms,
                                                   gint              n_atoms,
@@ -60,10 +110,42 @@ typedef void (* GtkClipboardTargetsReceivedFunc)  (GtkClipboard     *clipboard,
  * right now for ClearFunc, you may have trouble determining _which_ clipboard
  * was cleared, if you reuse your ClearFunc for multiple clipboards.
  */
+/**
+ * GtkClipboardGetFunc:
+ * @clipboard: the #GtkClipboard
+ * @selection_data: a #GtkSelectionData argument in which the requested
+ *   data should be stored.
+ * @info: the info field corresponding to the requested target from the
+ *   #GtkTargetEntry array passed to gtk_clipboard_set_with_data() or
+ *   gtk_clipboard_set_with_owner().
+ * @user_data_or_owner: the @user_data argument passed to
+ *   gtk_clipboard_set_with_data(), or the @owner argument passed to
+ *   gtk_clipboard_set_with_owner()
+ *
+ * A function that will be called to provide the contents of the selection.
+ * If multiple types of data were advertised, the requested type can
+ * be determined from the @info parameter or by checking the target field
+ * of @selection_data. If the data could successfully be converted into
+ * then it should be stored into the @selection_data object by
+ * calling gtk_selection_data_set() (or related functions such
+ * as gtk_selection_data_set_text()). If no data is set, the requestor
+ * will be informed that the attempt to get the data failed.
+ */
 typedef void (* GtkClipboardGetFunc)          (GtkClipboard     *clipboard,
                                               GtkSelectionData *selection_data,
                                               guint             info,
                                               gpointer          user_data_or_owner);
+
+/**
+ * GtkClipboardClearFunc:
+ * @clipboard: the #GtkClipboard
+ * @user_data_or_owner: the @user_data argument passed to gtk_clipboard_set_with_data(),
+ *   or the @owner argument passed to gtk_clipboard_set_with_owner()
+ *
+ * A function that will be called when the contents of the clipboard are changed
+ * or cleared. Once this has called, the @user_data_or_owner argument
+ * will not be used again.
+ */
 typedef void (* GtkClipboardClearFunc)        (GtkClipboard     *clipboard,
                                               gpointer          user_data_or_owner);